home *** CD-ROM | disk | FTP | other *** search
- -- stack: in.2
- -- format: 8 (HyperCard 1)
- -- flags: 0x0 (none)
- -- protect password hash: 0
- -- maximum user level: 5 (scripting)
- -- window: Rect(x1=0, y1=0, x2=0, y2=0)
- -- screen: Rect(x1=0, y1=0, x2=0, y2=0)
- -- card dimensions: w=0 h=0
- -- scroll: x=0 y=0
- -- background count: 4
- -- first background id: 19480
- -- card count: 8
- -- first card id: 36467
- -- list block id: 2952
- -- print block id: 17075
- -- font table block id: 0
- -- style table block id: 0
- -- free block count: 0
- -- free size: 0 bytes
- -- total size: 41440 bytes
- -- stack block size: 8192 bytes
- -- created by hypercard version: 0x00000000
- -- compacted by hypercard version: 0x00000000
- -- modified by hypercard version: 0x00000000
- -- opened by hypercard version: 0x00000000
- -- patterns[0]: 0x0000000000000000
- -- patterns[1]: 0x8000000008000000
- -- patterns[2]: 0x8800220088002200
- -- patterns[3]: 0x8888222288882222
- -- patterns[4]: 0x88AA22AA88AA22AA
- -- patterns[5]: 0xCCAA33AACCAA33AA
- -- patterns[6]: 0xEEAABBAAEEAABBAA
- -- patterns[7]: 0xEEBBBBEEEEBBBBEE
- -- patterns[8]: 0xFFBBFFEEFFBBFFEE
- -- patterns[9]: 0xFFBBFFFFFFBBFFFF
- -- patterns[10]: 0x8010022001084004
- -- patterns[11]: 0xFFFFFFFFFFFFFFFF
- -- patterns[12]: 0x8822882288228822
- -- patterns[13]: 0x1122448811224488
- -- patterns[14]: 0xC4800C6843023026
- -- patterns[15]: 0xB130031BD8C00C8D
- -- patterns[16]: 0xAA00AA00AA00AA00
- -- patterns[17]: 0x8822552288225522
- -- patterns[18]: 0x8855225588552255
- -- patterns[19]: 0x77DD77DD77DD77DD
- -- patterns[20]: 0x8000000000000000
- -- patterns[21]: 0xAA55AA55AA55AA55
- -- patterns[22]: 0x038448300C020101
- -- patterns[23]: 0x8244394482010101
- -- patterns[24]: 0x8814224188412214
- -- patterns[25]: 0x8080413E080814E3
- -- patterns[26]: 0x22048C7422179810
- -- patterns[27]: 0xBE808808EB088880
- -- patterns[28]: 0x25C8328964244C92
- -- patterns[29]: 0xA29C41BE2AC914EB
- -- patterns[30]: 0x40A00000040A0000
- -- patterns[31]: 0x8040200002040800
- -- patterns[32]: 0xAA00800088008000
- -- patterns[33]: 0xFF80808080808080
- -- patterns[34]: 0x081C22C180010204
- -- patterns[35]: 0xFF808080FF080808
- -- patterns[36]: 0xF87422478F172271
- -- patterns[37]: 0xBF00BFBFB0B0B0B0
- -- patterns[38]: 0xFF7FBE5DA2418000
- -- patterns[39]: 0xFAF5FAF5A050A050
- -- checksum: 0x0
- ----- HyperTalk script -----
- on openStack
- Global operationMode,dateforUpdate
- global UpdateField,span1,span2,span3
- global upArrow,downArrow
- global maxDataPoints,minBaseValue
- global firstChart,saveLevel
- hide message box
- hide menubar
- put the userLevel into saveLevel
- set userLevel to 3
- put 16692 into upArrow
- put 3584 into downArrow
- put 5 into span1
- put 15 into span2
- put 40 into span3
- put 52 into maxDataPoints
- put 10000 into minBaseValue
- put 7 into firstChart -- number of first chart card
- end openStack
-
- on closeStack
- global saveLevel
- set userLevel to saveLevel
- end closeStack
-
- on clearScreen
- choose select tool
- doMenu select all
- doMenu clear picture
- end clearScreen
-
- function maxLine what,itemNr
- put item itemNr of line 1 of what into result
- repeat with i = 2 to the number of lines in what
- put max(result,item itemNr of line i of what) into result
- end repeat
- return result
- end maxLine
-
- function minLine what,itemNr
- put item itemNr of line 1 of what into result
- repeat with i = 2 to the number of lines in what
- put min(result,item itemNr of line i of what) into result
- end repeat
- return result
- end minLine
-
- function rounders sum,span
- put round(100*(sum/span))/100 into result
- return result
- end rounders
-
- on ScrolltoLastLine
- global operationMode,dateforUpdate,lineCount
- if operationMode="Update" then
- if dateforUpdate≠item 1 of line lineCount of field "data" then
- get line lineCount of field "data"
- put it&return&dateforUpdate into line lineCount of field "data"
- add 1 to lineCount
- get line lineCount of field "data"
- put it&"," into line lineCount of field "data"
- put lineCount-4 into scrolledLines
- if scrolledLines>0 then
- multiply scrolledLines by the textheight of field "Data"
- set the scroll of field "Data" to scrolledLines
- end if
- end if
- end if
- end ScrolltoLastLine
-
- on arrowDirection arrowNr
- put "bkgnd button ""e&"Direction "&arrowNr"e into direction
- get line arrowNr of field "Directions"
- if it>0 then
- set the icon of direction to it
- show direction
- else
- hide direction
- end if
- end arrowDirection
-
- on MovingAverage Avg,avgNr,span,itemNr
- global lineCount
- global upArrow,downArrow
- put 0 into avga
- put 0 into avgb
- put lineCount into itemCount
- put "Average "&avgNr into avgField
- if lineCount>=span then
- put rounders(Avg,span) into field avgField
- else
- put empty into field avgField
- end if
- if lineCount>=span+2 then
- if itemNr>0 then
- put item itemNr of line itemCount of field "data" into endValue1
- subtract 1 from itemCount
- put item itemNr of line itemCount of field "data" into endValue2
- subtract span-1 from itemCount
- put item itemNr of line itemCount of field "data" into pastValue1
- subtract 1 from itemCount
- put item itemNr of line itemCount of field "data" into pastValue2
- else
- put -itemNr into lowItem
- put lowItem-1 into highItem
- put item highItem of line itemCount of field "data" into endValue1
- subtract item lowItem of line itemCount of field "data" from endValue1
- subtract 1 from itemCount
- put item highItem of line itemCount of field "data" into endValue2
- subtract item lowItem of line itemCount of field "data" from endValue2
- subtract span-1 from itemCount
- put item highItem of line itemCount of field "data" into pastValue1
- subtract item lowItem of line itemCount of field "data" from pastValue1
- subtract 1 from itemCount
- put item highItem of line itemCount of field "data" into pastValue2
- subtract item lowItem of line itemCount of field "data" from pastValue2
- end if
- put Avg into Avga
- subtract endValue1 from Avga
- add pastValue1 to Avga
- put Avga into Avgb
- subtract endValue2 from Avgb
- add pastValue2 to Avgb
- put 0 into iconNr
- if Avg > Avga then
- if Avga>Avgb then
- put upArrow into iconNr
- end if
- else
- if Avg < Avga then
- if Avga < Avgb then
- put downArrow into iconNr
- end if
- end if
- end if
- else
- put 0 into iconNr
- end if
- put iconNr into line avgNr of field "Directions"
- arrowDirection avgNr
- end MovingAverage
-
- on ClearFields
- put empty into field "Date of Last Update"
- put empty into field "high"
- put empty into field "low"
- put empty into field "close"
- put empty into field "Average 1"
- put empty into field "Average 2"
- put empty into field "Average 3"
- put the number of lines of field "data" into lineCount
- repeat with i=1 to 3
- put 0 into line i of field "Directions"
- arrowDirection i
- end repeat
- end ClearFields
-
- on TrimDataPoints -- Reduce data points to maxDataPoints
- global maxDataPoints,lineCount
- repeat while last line of field "data" is empty
- delete last line of field "data"
- end repeat
- repeat while number of lines of field "data" > maxDataPoints
- delete line 1 of field "data"
- end repeat
- put the number of lines of field "data" into lineCount
- end TrimDataPoints
-
- on SetforUpdate
- global operationMode,dateforUpdate,lineCount
- if operationMode="Update" then
- if dateforUpdate≠item 1 of line lineCount of field "data" then
- get line lineCount of field "data"
- put it&return&dateforUpdate into line lineCount of field "data"
- add 1 to lineCount
- get line lineCount of field "data"
- put it&"," into line lineCount of field "data"
- put lineCount-4 into scrolledLines
- if scrolledLines>0 then
- multiply scrolledLines by the textheight of field "Data"
- set the scroll of field "Data" to scrolledLines
- end if
- end if
- else
- put number of lines of field "data" into lineCount
- if lineCount>1 then
- scrolltoLastLine
- end if
- end if
- end SetforUpdate
-
- on QuickUpdate
- global dateforUpdate,lineCount,cardNr,updateFlag
- -- Assumes at card cardNr
- put "skip" into updateFlag
- put field "Stock Symbol" into StockSymbol
- put field "Stock Name" into StockName
- put the number of lines of field "data" into lineCount
- get line lineCount of field "data"
- if dateforUpdate≠item 1 of it then
- go card "Update All"
- set lockScreen to false
- put StockSymbol into field "Symbol"
- put StockName into field "Name"
- put item 1 of it into field "Last Week"
- delete item 1 of it
- put it into field "Last Week's Prices"
- put dateforUpdate into field "This Week"
- put empty into field "This Week's Prices"
- set lockScreen to true
- else
- add 1 to cardNr
- end if
- end QuickUpdate
-
-